var ERROR = {
		bgColor: '#F8E0F7',
		addArr: function($data){
			for($i = 0; $i < $data.length;  $i++){
				$('div.hz-errors ul').append('<li>'+$data[i]+'</li>');
			}
		},
		add: function($data){
			$('div.hz-errors ul').append('<li>'+$data+'</li>');
		},
		clear: function(){
			$('div.hz-errors ul').html('');
		},
		show: function(){
			$('div.hz-errors').show('fast');
		},
		hide: function(){
			$('div.hz-errors').hide('fast');
		}
};
var LOADING = {
		isLoading: false,
		show: function(){
			$('div.hz-loading').show();
			LOADING.isLoading = true;
		},
		hide: function(){
			$('div.hz-loading').hide();
			LOADING.isLoading = false;
		}
}
var LANG = {
		current: 'vi',
		set: function(){
			$('a.lang').removeClass('-active');
			$('a.lang[data-lang='+LANG.current+']').addClass('-active');
		}
}
var MAIN = {
		currentMenu: 'home',
		timer: null,
		timeDelay: 1000,
		setMenu: function(menu){
			MAIN.currentMenu = menu;
			$('.menu-page a').removeClass('-active');
			$('.menu-page a[data-id='+MAIN.currentMenu+']').addClass('-active');
			$('.hz-multi-menu').unbind('mouseover').mouseover(function(){
				var $ob = $(this);
				$ob.find('> ul').show();
				$ob.mouseout(function(){
					$ob.find('> ul').hide();
					$ob.unbind('mouseout');
				});
			});
		},
		setDefault: function(){
			$.datepicker.setDefaults({
				showOn: "button",
				buttonImageOnly: true,
				buttonImage: "/css/admin/img/global/calendar-icon.jpg",
				buttonText: "Lịch",
				showButtonPanel: true,
				changeMonth: true,
				changeYear: true,
				yearRange: '1970:2100'
			});
			$.datepicker.regional['vn'] = {clearText: 'Xoá', clearStatus: '',
					closeText: 'Hoàn thành', closeStatus: 'Hoàn thành',
					prevText: '<Trước', prevStatus: 'tháng trước',
					nextText: 'Sau>', nextStatus: 'tháng kế tiếp',
					currentText: 'Hôm nay', currentStatus: 'Ngày hôm nay',
					monthNames: ['Tháng 1','Tháng 2','Tháng 3','Tháng 4','Tháng 5','Tháng 6','Tháng 7','Tháng 8','Tháng 9','Tháng 10','Tháng 11','Tháng 12'],
					monthNamesShort: ['1','2','3','4','5','6','7','8','9','10','11','12'],
					monthStatus: 'Tháng sau', yearStatus: 'Năm sau',
					weekHeader: 'Tuần', weekStatus: '',
					dayNames: ['Chủ nhật','Thứ 2','Thứ 3','Thứ 4','Thứ 5','Thứ 6','Thứ 7'],
					dayNamesShort: ['CN','Hai','Ba','Tu','Nam','Sáu','Bảy'],
					dayNamesMin: ['CN','2','3','4','5','6','7'],
					dayStatus: 'Ngày đầu tuần', dateStatus: 'Chọn ngày',
					dateFormat: 'dd/mm/yy', firstDay: 0, 
					initStatus: 'Chọn ngày', isRTL: false};
			$.datepicker.setDefaults( $.datepicker.regional[ "vn" ] );
			$('a.lang').click(function(){
				if(LOADING.isLoading) return false;
				LOADING.show();
				
				var $ob = $(this);
				$.ajax({
					type: "POST",
					url: $ob.attr('data-url'),
					data: {
						lang: $ob.attr('data-lang')
					},
					cache: false,
					success: function(data){
						LOADING.hide();
						if (parseInt(data, 10) == 1){
							window.location.reload();
						}
					}
				});
				return false;
			});
		},
		setForm: function(){
			$('input.number').unbind('keydown').keydown(function(event) {
				// Allow: backspace, delete, tab, escape, and enter,  Ctrl+A, home, end, left, right
				if ( event.keyCode ==190 
						|| event.keyCode == 110 
						||  event.keyCode == 46 
						|| event.keyCode == 8 
						|| event.keyCode == 9 
						|| event.keyCode == 27 
						|| event.keyCode == 13 
						|| (event.keyCode == 65 && event.ctrlKey === true) 
						|| (event.keyCode >= 35 && event.keyCode <= 39)) {
					return ;
				}
				else {
					// Ensure that it is a number and stop the keypress
					if (event.shiftKey || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105 )) {
						event.preventDefault(); 
					}
				}
			});
			$('a.add-file').unbind('click').click(function(){
				var $ob = $(this);
				$.fancybox.open({
					padding : 10,
					width: 400,
					type: 'iframe',
					href: $ob.attr('href'),
					helpers: {
						overlay:{
							closeClick : false
						},
						beforeClose: function(){
							
						}
					}
				});
				return false;
			});
			$('input.date-picker').unbind('datepicker').datepicker({
				beforeShow: function() {
					setTimeout(function(){
						$('.ui-datepicker').css('z-index', 9);
					}, 0);
				}
			});
			$('img.captcha').css('cursor','pointer').unbind('click').click(function(){
				var d = new Date();
				$(this).attr('src','/captcha?no='+d.getTime());
			}).trigger('click');
		},
		init:function(){
			MAIN.setDefault();
			MAIN.setForm();
		},
		
		createMessageDiv: function(message, isError){
			var style = 'width: 400px; border: 1px solid #f00; margin: 0px auto; background: #F8ECE0; color: #f00; padding:10px; text-align: center' ; 
			if(!isError){
				style = 'width: 400px; border: 1px solid #f00; margin: 0px auto; background: #E0F8F7; color: #333; padding:10px; text-align: center' ; 
			}
			var $str = '<div style="'+ style +'">'+message+'</div>';
			
			
			$('div.hz-message').html('').append($str).hide().slideDown();
			if(MAIN.intv != null){
				clearTimeout(MAIN.intv);
				MAIN.intv = null;
			}
			MAIN.intv = setTimeout('$("div.hz-message").show().slideToggle()', 5000);
		}
}
var FORM = {
		check: function($form){
			var $isError = false;
			ERROR.clear();
			$form.find('input.hz-required, textarea.hz-required').each(function(){
				var $ob = $(this);
				$ob.css('background','');
				
				if($ob.val()==''){
					$isError = true;
					$ob.css('background',ERROR.bgColor);
					ERROR.add($('div.hz-errors').attr('error-empty'));
				}
			});
			$form.find('input.hz-email').each(function(){
				var $ob = $(this);
				$ob.css('background','');
				
				if($ob.val()!='' && !VALIDATOR.isEmail($ob.val())){
					$isError = true;
					$ob.css('background',ERROR.bgColor);
					ERROR.add($('div.hz-errors').attr('error-email'));
				}
				if($ob.hasClass('hz-required') && $ob.val()==''){
					$ob.css('background',ERROR.bgColor);
				}
			});
			$form.find('input.hz-img-required').each(function(){
				var $ob = $(this);
				$ob.parent().parent().css('background','');
				
				if($ob.val().trim()==''){
					$isError = true;
					$ob.parent().parent().css('background',ERROR.bgColor);
					ERROR.add($('div.hz-errors').attr('error-img-empty'));
				}
			});
			$form.find('select.hz-required').each(function(){
				var $ob = $(this);
				$ob.css('background','');
				
				if($ob.val() == '' || parseInt($ob.val(),10) < 0 ){
					$isError = true;
					$ob.css('background',ERROR.bgColor);
					ERROR.add($('div.hz-errors').attr('error-select'));
				}
			});
			$form.find('input.hz-confirm-required').each(function(){
				var $ob = $(this);
				var $obc = $('#'+$ob.attr('data-id-confirm'));
				if($ob.val()=='' || $obc.val()=='') return;
				$ob.css('background','');
				$obc.css('background','');
				
				if($ob.val() != $obc.val()){
					$isError = true;
					$ob.css('background',ERROR.bgColor);
					$obc.css('background',ERROR.bgColor);
					ERROR.add($('div.hz-errors').attr('error-confirm-required'));
				}
				if($ob.hasClass('hz-required') && $ob.val()==''){
					$ob.css('background',ERROR.bgColor);
				}
			});
			if($isError){
				
				ERROR.show();
			}else{
				ERROR.hide();
			}
			return !$isError;
		},
		init: function(){
			$('.hz-submit-ajax').unbind('click').click(function(){
				var $ob = $(this);
				var $form = $('#'+$ob.attr('data-form-id'));
				if(FORM.check($form)){
					if(LOADING.isLoading) return false;
					LOADING.show();
					try{
						var $fn = window[$ob.attr('callback-before-send')];
						if(typeof ($fn) === 'function'){
							$fn();
						}
					}catch(ex){
						
					};
					
					var $dataSent = '{';
					var $strSep = '';
					$form.find('input, select, textarea').each(function(){
						$dataSent += $strSep + '"' + $(this).attr('name') + '":"' + $(this).val().replace("'", "\\'") + '"';
						$strSep = ',';
					});
					$dataSent += '}';
					$.ajax({
						type: "POST",
						url: $ob.attr('data-url'),
						data: $.parseJSON($dataSent),
						cache: false,
						success: function(data){
							LOADING.hide();
							try{
								var $fn = window[$ob.attr('callback-after-success')];
								if(typeof ($fn) === 'function'){
									$fn(data);
								}
							}catch(ex){
								
							};
							
						}
					});
				}
				return false;
			});
		},
		faq: function(data){
			$data = $.parseJSON(data);
			alert($data.message);
			if(parseInt($data.status) == 1){
				$('input, select, textarea').val('');
			}
			$('input.captcha').val('');
			$('img.captcha').trigger('click');
		},
		login: function(data){
			$data = $.parseJSON(data);
			if(parseInt($data.status) == 1){
				window.location.reload();
			}else{
				alert($data.message);
				$('#form_login input').val('');
			}
			
		},
		register: function(data){
			$data = $.parseJSON(data);
			if(parseInt($data.status) == 1){
				alert($data.message);
				window.location.reload();
			}else{
				alert($data.message);
				$('#form_reg input[type=password]').val('');
				$('#form_reg input.captcha').val('');
				$('#form_reg img.captcha').trigger('click');
			}
			
		}
}